import java.io.File;
import java.util.ArrayList;
import java.util.Formatter;
import java.util.List;

import org.jdom2.Attribute;
import org.jdom2.Element;


	public class SerializadorLaberinto {
		private Laberinto laberinto;
	
	
	
	public SerializadorLaberinto(Laberinto labe){
		this.laberinto= labe;
	}
	
	
	public void serializar() {
		
		File file=new File(Config.XMLSALIDA);
		if (file.exists()) file.delete();
		
		XMLHandler archivoxml = new XMLHandler(Config.XMLSALIDA);
				
		Element elemento=new Element("laberinto");
		elemento.setAttributes(this.getAtributosBasicos());
		archivoxml.guardarElemento(elemento, 1);
		int limiteAlto= laberinto.getLimiteAlto();
		int limiteAncho= laberinto.getLimiteAncho();
		for( int i=0; i<limiteAlto ; i++)
			for (int j=0; j<limiteAncho ; j++ ){
				Posicion pos= laberinto.getPosicion(i, j);
				PosicionSerializable ps = new PosicionSerializable(pos);
				archivoxml.guardarSerializable(ps, archivoxml.getcantidadelementos()+1);
			}
	Config.cambiarSalidaLaberinto();
	}
	
	

	private List<Attribute> getAtributosBasicos(){
		Attribute att1 = new Attribute("alto",new Formatter().format("%02d", laberinto.getLimiteAlto()).toString());
		Attribute att2 = new Attribute("ancho",new Formatter().format("%02d", laberinto.getLimiteAncho()).toString());
		Attribute att3= new Attribute("nodoAlto",Integer.toString(30));
		Attribute att4= new Attribute("nodoAncho",Integer.toString(30));
		Attribute att5= new Attribute("inicioPacman",laberinto.getInicioPacman().getid());
		Attribute att6= new Attribute("inicioFantasmas",laberinto.getInicioFantasmas().getid());
		List<Attribute> lista=new ArrayList<Attribute>();
		lista.add(att1);
		lista.add(att2);
		lista.add(att3);
		lista.add(att4);
		lista.add(att5);
		lista.add(att6);
		return lista;
	}
	
}
